//package com.chalk.config;
//
//
//import com.baomidou.mybatisplus.mapper.EntityWrapper;
//import com.chalk.common.constant.CommonConstants;
//import com.chalk.common.constant.TypeConstants;
//import com.chalk.common.util.RedisUtil;
//import com.chalk.common.util.SensitiveWordUtil;
//import com.chalk.model.ActivityCenter;
//import com.chalk.model.SensitiveWord;
//import com.chalk.service.ActivityCenterService;
//import com.chalk.service.SensitiveWordService;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.CommandLineRunner;
//import org.springframework.stereotype.Component;
//
//import java.util.Calendar;
//import java.util.List;
//
///**
// * 系统初始化
// * @author Zhaob
// */
//@Component
//public class InitTask implements CommandLineRunner {
//
//    private static final Logger logger = LoggerFactory.getLogger(InitTask.class);
//
//    @Autowired
//    private ActivityCenterService activityCenterService;
//
//    @Autowired
//    private RedisUtil redisUtil;
//
//    @Autowired
//    private SensitiveWordService sensitiveWordService;
//
//
//    @Override
//    public void run(String... args) throws Exception {
//        // 项目启动初始化活动数据
//        initActivity();
//        // 初始化敏感词
//        initSensitiveWord();
//    }
//
//    /**
//     * 每次重启防止rediskey过期但是服务停止了
//     */
//    private void initActivity() {
//        List<ActivityCenter> list = activityCenterService.selectList(new EntityWrapper<>());
//        list.forEach(param -> {
//            if(!TypeConstants.ActivityStatus.END.equals(param.getStatus())){
//                String key = CommonConstants.ACTIVITY_CENTER_NOT_STARTED + param.getId();
//                long time = (param.getStartTime().getTime() - Calendar.getInstance().getTimeInMillis()) / 1000;
//                if (time > 0) {
//                    redisUtil.set(key, param.getId(), time);
//                    param.setStatus(TypeConstants.ActivityStatus.NO_START.getValue());
//                }else {
//                    long end = (param.getEndTime().getTime() - Calendar.getInstance().getTimeInMillis()) / 1000;
//                    if(end > 0){
//                        key = CommonConstants.ACTIVITY_CENTER_PROCESSING + param.getId();
//                        redisUtil.set(key, param.getId(), end);
//                        param.setStatus(TypeConstants.ActivityStatus.ING.getValue());
//                    }else {
//                        param.setStatus(TypeConstants.ActivityStatus.END.getValue());
//                    }
//                }
//                activityCenterService.updateById(param);
//            }
//        });
//    }
//
//    /**
//     * 初始化敏感词
//     */
//    private void initSensitiveWord(){
//        List<String> list = sensitiveWordService.selectList(new SensitiveWord());
//        if(null != list && list.size() > 0){
//            SensitiveWordUtil.initMap(list);
//        }
//    }
//
//}
